package com.cat.orm.core.db.factory;

import com.cat.orm.core.base.IBaseData;
import com.cat.orm.core.db.dao.IDao;
import org.springframework.jdbc.core.JdbcTemplate;

/**
 * dao 工厂
 */
public interface DaoFactory {

    /**
     * dao class
     * @return class名字
     */
    Class<? extends IDao> daoClazz();

    /**
     * 创建dao
     * @param clazz class
     * @param jdbcTemplate jdbc模板
     * @param tableName 表明
     * @return dao
     */
    <T extends IBaseData> IDao<T> createDao(Class<T> clazz, JdbcTemplate jdbcTemplate, String tableName) throws Exception;
}
